package com.shujia.day07;

/*
    子类寻找成员变量并使用的流程：
        1、先就近原则，在方法内部中查找一次，若找到就使用
        2、若方法内部没有需要的变量，去当前类成员变量的位置上查找，若找到就使用
        3、若当前类成员变量的位置上没有需要的变量，去父类中的成员变量的位置上查找，若找到就使用
        4、若上面3个地方都没有找到所需要的变量，就报错

    java中提供了另外一个关键字super，用法跟this很像，但是super代表的是当前子类的直接父类的引用
    在子类中，可以通过super关键字使用直接父类中的非私有成员

 */
class Fu2{
    int a = 10;
}

class Son2 extends Fu2{
    int a = 20;

    public void fun1(){
        int a = 30;
        System.out.println(a); // 30
        System.out.println(this.a); // 20
//        Fu2 fu2 = new Fu2();
//        System.out.println(fu2.a);
        System.out.println(super.a); // 10


    }
}

public class ExtendsDemo4 {
    public static void main(String[] args) {
        Son2 son2 = new Son2();
        son2.fun1();
    }
}
